The present invention pertains to the use of hyperlinks on computer networks in general, and to the use of hyperlinks with embedded textual content, in particular.
An on-line information system typically includes one or more computers (the servers) that makes information available so that other computers (the clients) can access the information. The server manages access to the information, which can be structured as a set of independent on-line services. A server and client communicate via messages conforming to a communication protocol that are sent over a communication channel, such as a computer network, or through a dial-up connection.
Typical uses for on-line services include document viewing, electronic commerce, directory lookup, on-line classified advertisements, reference services, electronic bulletin boards, document retrieval, electronic publishing, keyword searching of documents, technical support for products, and directories of on-line services. A service may make information available to clients free of charge, or for a fee, and may be on publicly accessible networks, such as the Internet, or on private networks.
Information sources managed by the server may include files, databases, and applications that execute on the server or on a client computer. The information that the server provides may simply be stored on the server, may be converted from other formats manually or automatically, may be computed on the server in response to a client request, may be derived from data and applications on the server or other machines, or may be derived by any combination of these techniques.
The user of an on-line service typically employs a browser program executed on the client to access the information managed by the on-line service. Possible user capabilities include viewing, searching, downloading, printing, editing, and filing the information managed by the server. The user may also price, purchase, rent, or reserve services or goods offered through an on-line service.
On-line services are available on the World Wide Web (WWW), which operates over the global Internet. The Internet is a wide area network (WAN) comprising a multitude of generally unrelated computer networks that are interconnected. Similar services are available on private networks called xe2x80x9cIntranetsxe2x80x9d that may not be connected to the Internet, and through local area networks (LANs) and other WANs. The WWW and similar private network architectures provide a xe2x80x9cwebxe2x80x9d of interconnected document objects, and these document objects are located at various sites. A more complete description of the WWW is provided in xe2x80x9cThe World-Wide Web,xe2x80x9d by T. Berners-Lee, R. Cailliau, A. Luotonen, H. F. Nielsen, and A. Secret, Communications of the ACM, 37 (8), pp. 76-82, August 1994, and in xe2x80x9cWorld Wide Web: The Information Universe,xe2x80x9d by Berners-Lee, T., et al., in Electronic Networking: Research, Applications and Policy, Vol. 1, No. 2, Meckler, Westport, Conn., Spring 1992.
Among the types of document objects in an on-line service are documents and scripts. Documents that are published on the WWW are usually written in the Hypertext Markup Language (HTML). This language is described in HyperText Markup Language Specificationxe2x80x942.0, by T. Berners-Lee and D. Connolly, RFC 1866, proposed standard, November 1995, and in xe2x80x9cWorld Wide Web and HTML,xe2x80x9d by Douglas C. McArthur, in Dr. Dobbs Journal, December 1994, pp. 18-20, 22, 24, 26 and 86. Many companies are also developing their own enhancements to HTML. HTML documents are generally static, that is, their contents do not change over time unless modified by a service developer or by the author. HTML documents can be created using programs such as Microsoft Corporation""s FRONTPAGE(trademark) web page development program, which are specifically designed for that purpose, or by executing a script file, and can include JAVA(trademark) and/or ACTIVEX(trademark) programming language code.
The HTML language is used for writing hypertext documents, which are more formally referred to as Standard Generalized Markup Language (SGML) documents that conform to a particular Document Type Definition (DTD). An HTML document includes a hierarchical set of markup elements; most elements have a start tag, followed by content, followed by an end tag. The content is a combination of text and nested markup elements. Tags, which are enclosed in angle brackets (xe2x80x98 less than xe2x80x99 and xe2x80x98 greater than xe2x80x99), indicate how the document is structured and how to display the document, as well as destinations and labels for hypertext links. There are tags for markup elements such as titles and headers, text attributes such as bold and italic, lists, paragraph boundaries, links to other documents or other parts of the same document, in-line graphic images, and tags for many other features.
The following lines of HTML briefly illustrate how the language is used:
Some words are  less than B greater than bold less than /B greater than , others are  less than I greater than italic less than /I greater than . Here we start a new paragraph. less than P greater than Here""s a link to
the  less than A HREF=xe2x80x9chttp://www.microsoft.comxe2x80x9d greater than Microsoft Corporation  less than /A greater than homepage.
This sample document is a hypertext document because it contains a hypertext xe2x80x9clinkxe2x80x9d (hyperlink) to another document, in the line that includes xe2x80x9cHREF=.xe2x80x9d The format of this link is described below. A hypertext document may also have a link to other parts of the same document. Linked documents may generally be located anywhere on the Internet.
When a user is viewing the document with a client program called a Web browser (described below), the links are displayed as highlighted words or phrases. For example, using a Web browser, the sample document above might be displayed on the user""s screen as follows:
Some words are bold, others are italic. Here we start a new paragraph.
Here""s a link to the Microsoft Corporation homepage.
The highlighted words or phrases comprise the link""s xe2x80x9canchor.xe2x80x9d In addition to displaying text, a picture icon may also be used as a hyperlink anchor and may be combined with a text block so that both serve as the hyperlink anchor.
In a Web browser, the link may be selected, for example, by clicking on the highlighted area with a mouse. Typically, the screen cursor changes shape and/or color when positioned on the hypertext anchor. Selecting a link will cause the associated document to be displayed. Thus, clicking on the highlighted text (underlined in the above example) reading xe2x80x9cMicrosoft Corporationxe2x80x9d would retrieve and display the associated homepage for that entity.
The HTML language also provides a mechanism (the image or xe2x80x9cIMGxe2x80x9d element) that enables an HTML document to include by reference, an image, which is stored as a separate file. When the end user views the HTML document, the included image is displayed as part of the document, at the point where the image element reference occurred in the document.
Another kind of document object in a web page is a xe2x80x9cscript.xe2x80x9d A script is an executable program, or a set of commands stored in a file, that can be run by a server program called a Web server (described below) to produce an HTML document that is then returned to the Web browser. Typical script actions include running library routines or other applications to fetch information from a file or a database, or initiating a request to obtain information from another machine, or retrieving a document corresponding to a selected hypertext link. A script may be run on the Web server when, for example, the end user selects a particular hypertext link in the Web browser, or submits an HTML form request. Scripts are usually written by a service developer in an interpreted language such as Basic, Practical Extraction and Report Language (Perl), or Tool Control Language (Tcl) or one of the Unix operating system shell languages, but they also may be written in more complex programming languages such as xe2x80x9cCxe2x80x9d and then compiled to produce an executable program. Programming in Tcl is described in more detail in Tcl and the Tk Toolkit, by John K. Ousterhout, Addison-Wesley, Reading, Mass., USA, 1994. Perl is described in more detail in Programming in Perl, by Larry Wall and Randal L. Schwartz, O""Reilly and Associates, Inc., Sebastopol, Calif., USA, 1992. JAVA and ACTIVEX programs are also frequently employed in web pages to implement various tasks.
Each document object in a web has an identifier called a Universal Resource Identifier (URI). These identifiers are described in more detail in T. Berners-Lee, xe2x80x9cUniversal Resource Identifiers in WWW: A Unifying Syntax for the Expression of Names and Addresses of Objects on the Network as used in the World-Wide Web,xe2x80x9d RFC 1630, CERN, June 1994; and T. Bemers-Lee, L. Masinter, and M. McCahill, xe2x80x9cUniform Resource Locators (URL),xe2x80x9d RFC 1738, CERN, Xerox PARC, University of Minnesota, December 1994. A URI allows any object on the Internet to be referred to by name or address, such as in a link in an HTML document as shown above. There are two types of URIs: a Universal Resource Name (URN), and a Uniform Resource Locator (URL). A URN references an object by name within a given name space. A URL references an object by defining an access algorithm using network protocols. An example of a URL is xe2x80x9chttp:flwww.microsoft.comxe2x80x9d. A URL has the syntax xe2x80x9cscheme://host:port/path?searchxe2x80x9d where:
xe2x80x9cschemexe2x80x9d identifies the access protocol (such as HTTP, FTP, or GOPHER);
xe2x80x9chostxe2x80x9d is the Internet domain name of the machine that supports the protocol and comprises the fully qualified domain name of a network host, or its IP address written as a set of four decimal digit groups separated by periods. Fully qualified domain names take the form of a sequence of domain labels separated by periods, each domain label starting and ending with an alphanumerical character and possibly also containing xe2x80x9c-xe2x80x9d characters. The rightmost domain label will never start with a digit, though, which syntactically distinguishes all domain names from the IP addresses (See Section 3.5 of RFC 1034 and Section 2.1 of RFC 1123).
xe2x80x9cportxe2x80x9d is the transmission control protocol (TCP) port number of the appropriate server (if different from the default);
xe2x80x9cpathxe2x80x9d is a scheme specific identification of the object. It supplies the details of how the specified resource can be accessed. Note that the xe2x80x9c/xe2x80x9d between the host (or port) and the path is NOT part of the path; and
xe2x80x9csearchxe2x80x9d contains optional parameters for querying the content of the object.
URLs are also used by web servers and browsers on private computer systems, Intranets, or networks, and not just for the WWW. The HTTP URL scheme is used to designate Internet resources that may be accessed using HTTP, and an HTTP URL has the syntax xe2x80x9chttp:// less than host greater than : less than port greater than / less than path greater than ? less than searchpart greater than xe2x80x9d, where  less than host greater than  and  less than port greater than  are as described above. If : less than port greater than  is omitted, the port defaults to 80. No user name or password is allowed;  less than path greater than  is an HTTP selector, and  less than searchpart greater than  is a query string. The  less than path greater than  is optional, as is the  less than searchpart greater than  and its preceding xe2x80x9c?xe2x80x9d. If neither  less than path greater than  nor  less than searchpart greater than  is present, the xe2x80x9c/xe2x80x9d may also be omitted. Within the  less than path greater than  and  less than searchpart greater than  components, xe2x80x9c/xe2x80x9d, xe2x80x9c;xe2x80x9d, xe2x80x9c?xe2x80x9d are reserved. The xe2x80x9c/xe2x80x9d character may be used within HTTP to designate a hierarchical structure.
There are generally two types of URLs that may be used in the hypertext link: absolute URLs, and relative URLs. An absolute URL includes a protocol identifier, a machine name, and an optional HTTP port number. A relative URL does not include a protocol identifier, machine name or port, and must be interpreted relative to some known absolute URL called the base URL. The base URL is used to determine the protocol identifier, machine name, optional port, and base directory for a relative URL. For further discussion of URL format and usage, see the document xe2x80x9cUniform Resource Locators,xe2x80x9d Internet Request for Comments (RFC) 1738, by T. Berners-Lee, L. Masinter, M. McCahill, University of Minnesota, December 1994. For further discussions of relative URL format and usage, see xe2x80x9cRelative Uniform Resource Locators,xe2x80x9d RFC 1808, by R. Fielding, University of California, Irvine, June 1995.
A hypertext link to an electronic document is specified by one of several HTML elements. One of the parameters of an HTML element for a hypertext link is the URL that serves as the identifier for the target of the link. An HTML document may have a base element defining an absolute URL that specifies the base URL for that document. If the document has no base element, then the absolute URL of the document is used as the base URL. The base element provides a base address for interpreting relative URLs when the document is read out of context.
For example, FIG. 1A shows text having a document URL 10, a base element 12, a hypertext link with an absolute URL 14, and a hypertext link with a relative URL 16, which is evaluated with respect to base URL 12 to produce a resulting URL 18. As an additional example, FIG. 1B shows text having a document URL 20, no base element, a hypertext link with an absolute URL 22, and a hypertext link with a relative URL 24, which is evaluated with respect to document URL 20 to produce a resulting URL 26.
A site at which documents are made available to network users is called a xe2x80x9cWeb sitexe2x80x9d and must run a xe2x80x9cWeb serverxe2x80x9d program to provide access to the documents. A Web server program is a computer program that allows a computer on the network to make documents available to the rest of the WWW or a private network. The documents are often hypertext documents in the HTML language, but may be other types of document objects as well, and may include images, audio, and/or video information. The information that is managed by the Web server includes hypertext documents that are stored on the server or are dynamically generated by scripts on the Web server. Several Web server software packages exist, such as the Conseil Europeen pour la Recherche Nucleaire (CERN, the European Laboratory for Particle Physics) server or the National Center for Supercomputing Applications (NCSA) server. Web servers have been implemented for several different platforms, including the Sun Corporation SPARC II(trademark) workstation running the Unix operating system, and personal computers with the Intel PENTIUM(trademark) processor running the Microsoft MS-DOS(trademark) operating system and the Microsoft WINDOWS(trademark) graphic user interface operating environment.
Web servers also have a standard interface for running external programs, called the Common Gateway Interface (CGI). CGI is described in more detail in How to Set Up and Maintain a Web Site, by Lincoln D. Stein, Addison-Wesley, August 1995. A gateway is a program that handles incoming information requests and returns the appropriate document or generates a document dynamically. For example, a gateway might receive queries, look up the answer in a database to provide a response, and translate the response into a page of HTML so that the server can send the response to the client. A gateway program may be written in a language such as xe2x80x9cCxe2x80x9d or in a scripting language such as Perl or Tcl or one of the Unix operating system shell languages. The CGI standard specifies how the script or application receives input and parameters, and specifies how output should be formatted and returned to the server.
For security reasons, a Web server machine may limit access to files. To control access to files on the Web server, the Web server program running on the server machine may provide an extra layer of security above and beyond the normal file system and login security procedures of the operating system on the server machine. Access to the on-line service document objects via a network file system would not conform to the security features of the Web server program and would provide a way to access documents outside of the security provided by the Web server. The Web server program also typically maps document object names that are known to the client to file names on the server file system. This mapping may be arbitrarily complex, and any author or program that tries to access documents on the Web server directly would need to understand this name mapping.
A user (typically using a computer other than the Web server) who wishes to access documents available on the network at a Web site must run a Web browser. The combination of the Web server and Web browser communicating over a computer network using an HTTP protocol is referred to herein as a xe2x80x9cweb architecture.xe2x80x9d The Web browser program allows the user to retrieve and display documents from Web servers. Some of the popular Web browser programs are: NAVIGATOR(trademark) browser from NetScape Communications Corp. of Mountain View, Calif.; MOSAIC(trademark) browser from the National Center for Supercomputing Applications (NCSA); WINWEB(trademark) browser, from Microelectronics and Computer Technology Corp. of Austin, Tex.; and Internet Explorer from Microsoft Corporation of Redmond, Wash. Web browsers have been developed to run on different platforms, including personal computers with the Intel Corporation PENTIUM(trademark) processor running Microsoft Corporation""s MS-DOS(trademark) operating system and Microsoft Corporation""s WINDOWS(trademark) graphic user interface operating system environment, and Apple Corporation""s MACINTOSH(trademark) personal computers, as well as various UNIX(trademark) operating system platforms.
The Web server and the Web browser communicate using the Hypertext Transfer Protocol (HTTP) message protocol and the underlying transmission control protocol/Internet protocol (TCP/IP) data transport protocol of the Internet. HTTP is described in Hypertext Transfer Protocolxe2x80x94HTTP/1.0, by T. Berners-Lee, R. T. Fielding, H. Frystyk Nielsen, Internet Draft Document, Oct. 14, 1995. In HTTP, the Web browser establishes a connection to a Web server and sends an HTTP request message to the server. In response to an HTTP request message, the Web server checks for authorization, performs any requested action, and returns an HTTP response message containing an HTML document in accord with the requested action, or an error message. The returned HTML document may simply be a file stored on the Web server, or may be created dynamically using a script called in response to the HTTP request message. For instance, to retrieve a document, a Web browser may send an HTTP request message to the indicated Web server, requesting a document by reference to the URL of the document. The Web server then retrieves the document and returns it in an HTTP response message to the Web browser. If the document has hypertext links, then the user may again select one of the links to request that a new document be retrieved and displayed. As another example, a user may fill in a form requesting a database search. In response, the Web browser will send an HTTP request message to the Web server including the name of the database to be searched, the search parameters, and the URL of the search script. The Web server calls a search program, passing in the search parameters. The program examines the parameters and attempts to answer the query, perhaps by sending the query to a database interface. When the program receives the results of the query, it constructs an HTML document that is returned to the Web server, which then sends it to the Web browser in an HTTP response message.
Request messages in HTTP contain a xe2x80x9cmethod namexe2x80x9d indicating the type of action to be performed by the server, a URL indicating a target object (either document or script) on the Web server, and other control information. Response messages contain a status line, server information, and possible data content. The Multipurpose Internet Mail Extensions (MIME) specification defines a standardized protocol for describing the content of messages that are passed over a network. HTTP request and response messages use MIME header lines to indicate the format of the message. MIME is described in more detail in MIME (Multipurpose Internet Mail Extensions): Mechanisms for Specifying and Describing the Format of Internet Message Bodies, Internet RFC 1341, June 1992.
As discussed above, a user typically views documents on the Internet with a web browser. The web browser is able to distinguish hyperlinks from other HTML content, which allows the browser to highlight the hyperlink anchors and/or change the cursor shape and/or color to inform the user that the underlying text or graphic is a hyperlink. The user can navigate a site or the web by simply clicking on various hyperlink anchors.
Although hyperlinks are a necessary and valuable feature, they only provide limited information to the user. For instance, the only component the user sees is the hyperlink anchor display text or the picture icon. In some cases, there is other descriptive text that is posted in proximity to the hyperlink or picture icon, such as the text a user sees below hyperlinks on a search report page issued by an Internet search engine. This additional descriptive text must be either be encoded into the HTML document (as is the case for most web pages), or be dynamically generated with an HTML script (as is true for search engine pages). In either case, the descriptive text is not inherently tied to the hyperlink.
To ensure that users return on a regular basis, it is desirable to provide changes in the content on web sites. A user may visit one or more favorite sites on a periodic basis, hoping to find new content. In most instances, a hyperlink to a changed resource (e.g., a web page) and any associated descriptive text displayed adjacent to the hyperlink (or part of a hyperlink picture icon) provide little or no indication that the resource has changed, and do not indicate when the most recent change occurred. If this information does exist, it must be generated by the author of the page containing the hyperlink, or the web site administrator. Even in the case of search page results, the information provided by a search engine is often out of date because the web page database the search engine uses was compiled before a change occurred.
It would be desirable to provide other information to a user before the user selects a hyperlink to access a linked resource. For instance, the linked resource might be a large document that can be very time consuming to download, especially over a slow connection. It is common for users to click on hyperlinks to ascertain the content of the document the hyperlink is mapped to, without knowing the size of the document. If the user unknowingly picks a large document, the resulting wait time often causes the user to stop the download of the document without ever viewing it, which results in a waste of both the user""s time and network bandwidth.
Thus, it would be advantageous for a user to be able to view contextual information concerning a linked document or other resource, such as its size, recent edits, etc., so that the user can decide whether to view the document before selecting the link. This feature would enable the user to find desired web page content more efficiently and avoid downloading content that is not desired. In addition, this type of contextual information would be advantageous to web site developers and administrators, since it would provide information concerning changes that are made to the documents on a site, indicate who made the changes, and provide other information that might be of interest to a developer or administrator.
The present invention addresses many of the foregoing problems associated with conventional hyperlink identifiers by providing a system and related method for adding contextual information pertaining to one or more linked documents, to display pages that contain hyperlinks to the linked documents. The contextual information can be immediately displayed when a page is opened, or it can be dynamically displayed based on a user interacting with a text hyperlink anchor or picture icon hyperlink anchor. The contextual information on a display page can assist a user in deciding whether to view the linked document. A variety of information about the linked document can be displayed, including whether the linked document has been modified within a predetermined time period, an author""s comments concerning any recent changes to the linked document, and the size of the document. In addition, the contextual information can be tailored to individual users. For instance, history information stored in a user""s browser concerning the times and dates a user visits a site can be used to formulate user-specific contextual information that is displayed on the browser, for example, as an icon that indicates a page referenced by the history information has been changed since the user last visited it. The system and method are preferably implemented as part of a web page authoring program.
The framework for adding the contextual information is provided by multiple contextual information files, each of which contains a set of xe2x80x9cmeta-dataxe2x80x9d entries. Preferably, in the meta-data, there is one contextual information file associated with each document that is stored on the web site server. The meta-data entries include various parameters concerning the associated document, such as time and date of last modification, author, the document""s size, etc. The meta-data may also include an author""s comments concerning recent changes, as well as other information that an author of a linked document provides. Preferably, the meta-data additionally comprise a list of back linked documentsxe2x80x94that is, referring documents on the web site that contain a hyperlink to the document. The back link information is used by a data promotion engine to automatically promote the contextual information to display pages that correspond to the back linked documents.
According to a first aspect of the invention, a method is disclosed for promoting contextual information associated with a linked document to a display page that contains a hyperlink to the linked document. When an author edits and saves the linked document, one or more of the meta-data entries associated with the linked document are updated, so that the contextual information for the display page can be determined. The data promotion engine then generates instructions corresponding to the display of the contextual information so that the display page will include the contextual information when the page is rendered by a browser. The instructions can either be added to the referring document at the time the linked document is saved, or else the instructions can be added to the HTML content of the referring document when it is uploaded from the web site server to a browser at render time. The instructions preferably are HTML code and may include JAVA and/or ACTIVEX script.
According to another aspect of the invention, contextual information concerning a nested document can be added to a display page that contains a hyperlink to a linked intermediate document, which, in turn, contains a hyperlink to the nested document. The nested document has an associated contextual information file containing meta-data entries that include a back link to the intermediate document. Likewise, the intermediate document has an associated contextual information file containing meta-data entries that include a back link to the display page document. The data promotion engine recursively follows these back links to determine that the contextual information instructions that it generates corresponding to the nested page can be added to the display page document. The display page may include contextual information for both the nested document and the intermediate document.